/********************************************************************
** @创建人: GodeGenerator
** @创建日期: 2013/1/6 16:46:39
** @功能描述:
** @最终修改日期: 2013/1/6 16:46:39
** @最终修改人: GodeGenerator
********************************************************************/

using System;
using System.Data;
using ZEntity.Data.ORM;
using System.Collections.Generic;

namespace myAssembly
{
	/// <summary>
	/// 银行客户即学习者
	/// <summary>
	[Serializable]
	[DataTable("Customer")]
	public class Customer
	{
		private Guid userID;
		/// <summary>
		/// 用户ID
		/// <summary>
		[KeyField("UserID", Type = SqlDbType.UniqueIdentifier, Length = 16, Nullable = false)]
		public Guid UserID
		{
			get { return userID; }
			set { userID = value; }
		}

		private Int16 sex;
		[DataField("Sex", Type = SqlDbType.SmallInt, Length = 2, Nullable = false)]
        public Int16 Sex
		{
			get { return sex; }
			set { sex = value; }
		}

		private Guid nationID;
		/// <summary>
		/// 字典表
		/// <summary>
		[DataField("NationID", Type = SqlDbType.UniqueIdentifier, Length = 16, Nullable = false)]
		public Guid NationID
		{
			get { return nationID; }
			set { nationID = value; }
		}

		private Guid certificateTypeID;
		/// <summary>
		/// 字典表
		/// <summary>
		[DataField("CertificateTypeID", Type = SqlDbType.UniqueIdentifier, Length = 16, Nullable = false)]
		public Guid CertificateTypeID
		{
			get { return certificateTypeID; }
			set { certificateTypeID = value; }
		}

		private string certificateNo;
		/// <summary>
		/// 证件号码
		/// <summary>
		[DataField("CertificateNo", Type = SqlDbType.VarChar, Length = 100, Nullable = false)]
		public string CertificateNo
		{
			get { return certificateNo; }
			set { certificateNo = value; }
		}

		private Guid degreeID;
		/// <summary>
		/// 字典表
		/// <summary>
		[DataField("DegreeID", Type = SqlDbType.UniqueIdentifier, Length = 16, Nullable = false)]
		public Guid DegreeID
		{
			get { return degreeID; }
			set { degreeID = value; }
		}

		private Guid registRegionID;
		/// <summary>
		/// 银行机构表（营业室）
		/// <summary>
		[DataField("RegistRegionID", Type = SqlDbType.UniqueIdentifier, Length = 16, Nullable = false)]
		public Guid RegistRegionID
		{
			get { return registRegionID; }
			set { registRegionID = value; }
		}

		private string community;
		/// <summary>
		/// 所属社区
		/// <summary>
		[DataField("Community", Type = SqlDbType.NVarChar, Length = 100, Nullable = true)]
		public string Community
		{
			get { return community; }
			set { community = value; }
		}

		private string company;
		/// <summary>
		/// 工作单位全称
		/// <summary>
		[DataField("Company", Type = SqlDbType.NVarChar, Length = 100, Nullable = false)]
		public string Company
		{
			get { return company; }
			set { company = value; }
		}

		private string cellphone;
		/// <summary>
		/// 手机号
		/// <summary>
		[DataField("Cellphone", Type = SqlDbType.VarChar, Length = 50, Nullable = false)]
		public string Cellphone
		{
			get { return cellphone; }
			set { cellphone = value; }
		}

		private string telephone;
		/// <summary>
		/// 固定电话
		/// <summary>
		[DataField("Telephone", Type = SqlDbType.VarChar, Length = 50, Nullable = true)]
		public string Telephone
		{
			get { return telephone; }
			set { telephone = value; }
		}

		private string eMail;
		/// <summary>
		/// 电子邮箱
		/// <summary>
		[DataField("EMail", Type = SqlDbType.VarChar, Length = 100, Nullable = true)]
		public string EMail
		{
			get { return eMail; }
			set { eMail = value; }
		}

		private string address;
		/// <summary>
		/// 通讯地址
		/// <summary>
		[DataField("Address", Type = SqlDbType.NVarChar, Length = 200, Nullable = false)]
		public string Address
		{
			get { return address; }
			set { address = value; }
		}

		private string postcode;
		/// <summary>
		/// 邮政编码
		/// <summary>
		[DataField("Postcode", Type = SqlDbType.VarChar, Length = 50, Nullable = false)]
		public string Postcode
		{
			get { return postcode; }
			set { postcode = value; }
		}

		private DateTime applyDate;
		/// <summary>
		/// 申请日期
		/// <summary>
		[DataField("ApplyDate", Type = SqlDbType.DateTime, Length = 8, Nullable = true)]
		public DateTime ApplyDate
		{
			get { return applyDate; }
			set { applyDate = value; }
		}

		private List<byte> iDCardPhote1;
		/// <summary>
		/// 身份证扫描件（正面）
		/// <summary>
		[DataField("IDCardPhote1", Type = SqlDbType.Image, Length = 16, Nullable = true)]
		public List<byte> IDCardPhote1
		{
			get { return iDCardPhote1; }
			set { iDCardPhote1 = value; }
		}

		private string iDCardPhote2;
		/// <summary>
		/// 身份证扫描件（反面）
		/// <summary>
		[DataField("IDCardPhote2", Type = SqlDbType.Char, Length = 10, Nullable = true)]
		public string IDCardPhote2
		{
			get { return iDCardPhote2; }
			set { iDCardPhote2 = value; }
		}

		private Int16 auditStatus;
		/// <summary>
		/// 0：空 1：审核通过 2：审核未通过 3：审核中
		/// <summary>
		[DataField("AuditStatus", Type = SqlDbType.SmallInt, Length = 2, Nullable = true)]
		public Int16 AuditStatus
		{
			get { return auditStatus; }
			set { auditStatus = value; }
		}

		private Guid auditorID;
		/// <summary>
		/// 审核人
		/// <summary>
		[DataField("AuditorID", Type = SqlDbType.UniqueIdentifier, Length = 16, Nullable = true)]
		public Guid AuditorID
		{
			get { return auditorID; }
			set { auditorID = value; }
		}

		private DateTime auditDate;
		/// <summary>
		/// 审核通过即为正式开户时间
		/// <summary>
		[DataField("AuditDate", Type = SqlDbType.DateTime, Length = 8, Nullable = true)]
		public DateTime AuditDate
		{
			get { return auditDate; }
			set { auditDate = value; }
		}

		private Guid auditOrgID;
		/// <summary>
		/// 营业室
		/// <summary>
		[DataField("AuditOrgID", Type = SqlDbType.UniqueIdentifier, Length = 16, Nullable = true)]
		public Guid AuditOrgID
		{
			get { return auditOrgID; }
			set { auditOrgID = value; }
		}

		private Int16 validType;
		/// <summary>
		/// 0：空 1：手机号 2：电子邮箱3：手机号和邮箱
		/// <summary>
		[DataField("ValidType", Type = SqlDbType.SmallInt, Length = 2, Nullable = true)]
		public Int16 ValidType
		{
			get { return validType; }
			set { validType = value; }
		}
	}
}
